package com.phiture.erp.basic.core.service;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import com.phiture.erp.basic.core.pojo.dto.ErpMaterialInventoryPageReqDTO;
import com.phiture.erp.basic.core.pojo.dto.ErpMaterialInventorySaveReqDTO;
import com.phiture.erp.basic.dal.entity.ErpMaterialInventoryDO;

/**
 * 物料库存属性 Service 接口
 *
 * @author 芋道源码
 */
public interface ErpMaterialInventoryService {

    /**
     * 创建物料库存属性
     *
     * @param createReqDTO 创建信息
     * @return 编号
     */
    Long createMaterialInventory(ErpMaterialInventorySaveReqDTO createReqDTO);

    /**
     * 更新物料库存属性
     *
     * @param updateReqDTO 更新信息
     */
    void updateMaterialInventory(ErpMaterialInventorySaveReqDTO updateReqDTO);

    void crateOrUpdateMaterialInventory(ErpMaterialInventorySaveReqDTO reqDTO);

    /**
     * 删除物料库存属性
     *
     * @param id 编号
     */
    void deleteMaterialInventory(Long id);

    /**
     * 获得物料库存属性
     *
     * @param materialId 编号
     * @return 物料库存属性
     */
    ErpMaterialInventoryDO getMaterialInventoryByMaterialId(Long materialId);

    /**
     * 获得物料库存属性分页
     *
     * @param pageReqDTO 分页查询
     * @return 物料库存属性分页
     */
    PageResult<ErpMaterialInventoryDO> getMaterialInventoryPage(ErpMaterialInventoryPageReqDTO pageReqDTO);

}